package cn.iocoder.yudao.module.system.controller.admin.mini.other.ysShop.dal.mysql.ysshop;

import java.util.*;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.mini.other.ysShop.controller.admin.ysshop.vo.YsShopExportReqVO;
import cn.iocoder.yudao.module.system.controller.admin.mini.other.ysShop.controller.admin.ysshop.vo.YsShopPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.mini.other.ysShop.dal.dataobject.ysshop.YsShopDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 易神消费记录 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface YsShopMapper extends BaseMapperX<YsShopDO> {

    default PageResult<YsShopDO> selectPage(YsShopPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<YsShopDO>()
                .betweenIfPresent(YsShopDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(YsShopDO::getOrderid, reqVO.getOrderid())
                .betweenIfPresent(YsShopDO::getDateStr, reqVO.getDate())
                .eqIfPresent(YsShopDO::getVipid, reqVO.getVipid())
                .eqIfPresent(YsShopDO::getType, reqVO.getType())
                .eqIfPresent(YsShopDO::getFas, reqVO.getFas())
                .eqIfPresent(YsShopDO::getCol, reqVO.getCol())
                .eqIfPresent(YsShopDO::getQuantity, reqVO.getQuantity())
                .eqIfPresent(YsShopDO::getPrice, reqVO.getPrice())
                .eqIfPresent(YsShopDO::getShp, reqVO.getShp())
                .orderByDesc(YsShopDO::getDateStr));
    }

    default List<YsShopDO> selectList(YsShopExportReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<YsShopDO>()
//                .betweenIfPresent(YsShopDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(YsShopDO::getOrderid, reqVO.getOrderid())
                .betweenIfPresent(YsShopDO::getDateStr, reqVO.getCreateTime())
                .eqIfPresent(YsShopDO::getVipid, reqVO.getVipid())
                .eqIfPresent(YsShopDO::getType, reqVO.getType())
                .eqIfPresent(YsShopDO::getFas, reqVO.getFas())
                .eqIfPresent(YsShopDO::getCol, reqVO.getCol())
                .eqIfPresent(YsShopDO::getQuantity, reqVO.getQuantity())
                .eqIfPresent(YsShopDO::getPrice, reqVO.getPrice())
                .eqIfPresent(YsShopDO::getShp, reqVO.getShp())
                .orderByDesc(YsShopDO::getId));
    }

}
